package com.gopay.common.domain.cps;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Version;

/**
 * @ClassName: CpsRefundManualLog
 * @Description: 退款审核优化
 * 
 *               <pre>
 * 退款查询中，针对退款状态为“银行处理中”交易状态为“进行中”的订单，操作中增加“修改”按钮。
 * 该类用做对“修改”操作的内容进行记录
 *               </pre>
 * 
 * @author lx
 * @date 2016年10月14日 下午5:43:03
 */
@Entity
@Table(name = "CPS_REFUND_MANUAL_LOG")
public class CpsRefundManualLog implements java.io.Serializable {

    private static final long serialVersionUID = 1543503917649638544L;
    /**
     * @Fields OPERATOR_FINAL_TYPE : 手工操作退款最终状态：01
     */
    public  static final String OPERATOR_FINAL_TYPE = "01";
    /**
     * @Fields OPERATOR_ONLINE_TO_OFFLINE : 线上退款转线下状态： 02
     */
    public  static final String OPERATOR_ONLINE_TO_OFFLINE = "02";
    
    /**
     * @Fields STATUS_SUCCESS : 操作状态成功
     */
    public  static final String STATUS_SUCCESS = "success";
    
    /**
     * @Fields STATUS_FAILED : 操作状态失败
     */
    public  static final String STATUS_FAILED = "failed";
    
    /**
     * @Fields id : 主键
     */
    @Id
    @Column(name = "ID", unique = true, nullable = false, length = 30)
    @SequenceGenerator(name="CpsRefundManualLogSequence",sequenceName="CPS_REFUND_MANUAL_LOG_SEQ")
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="CpsRefundManualLogSequence")
    private Long id;
    /**
     * @Fields gopayOrderId : 退款订单号
     */
    @Column(name = "GOPAY_ORDER_ID", nullable = false, length = 30)
    private String gopayOrderId;
    /**
     * @Fields status : 状态
     */
    @Column(name = "STATUS", length = 10, nullable = false)
    private String status;
    /**
     * @Fields remark : 处理意见
     */
    @Column(name = "REMARK", length = 200, nullable = false)
    private String remark;
    /**
     * @Fields createdOperId : 操作人
     */
    @Column(name = "CREATED_OPER_ID", length = 20, nullable = false)
    private String createdOperId;
    /**
     * @Fields createdTs : 创建时间
     */
    @Column(name = "CREATED_TS", nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    private Date createdTs;
    /**
     * @Fields lastUpdTs : 修改时间
     */
    @Column(name = "LAST_UPT_TS", nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    private Date lastUpdTs;
    /**
     * @Fields operatorType : 操作类型，手工操作退款最终状态：01; 线上退款转线下状态： 02
     */
    @Column(name = "OPERATOR_TYPE", length = 2, nullable = false)
    private String operatorType;
    /**
     * @Fields version : 乐观锁
     */
    @Version
    @Column(name = "VERSION", nullable = false, precision = 22, scale = 0)
    private int version;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getGopayOrderId() {
        return gopayOrderId;
    }

    public void setGopayOrderId(String gopayOrderId) {
        this.gopayOrderId = gopayOrderId;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getCreatedOperId() {
        return createdOperId;
    }

    public void setCreatedOperId(String createdOperId) {
        this.createdOperId = createdOperId;
    }

    public Date getCreatedTs() {
        return createdTs;
    }

    public void setCreatedTs(Date createdTs) {
        this.createdTs = createdTs;
    }

    public Date getLastUpdTs() {
        return lastUpdTs;
    }

    public void setLastUpdTs(Date lastUpdTs) {
        this.lastUpdTs = lastUpdTs;
    }

    public String getOperatorType() {
        return operatorType;
    }

    public void setOperatorType(String operatorType) {
        this.operatorType = operatorType;
    }

    public int getVersion() {
        return version;
    }

    public void setVersion(int version) {
        this.version = version;
    }

}
